Sparse graph creation device and sparse graph creation method

ABSTRACT

A selective PEG algorithm, creating a sparse matrix while maintaining row weight/column weight at arbitrary multi-levels, and in the process, inactivating an arbitrary edge so that a minimum loop formed between arbitrary nodes is enlarged or performing constrained interleaving, so that encoding efficiency in the case where a matrix space is narrow is improved.

BACKGROUND

1. Field of the Disclosure

The present disclosure relates to a sparse graph creation device and method for a sparse graph code, and more particularly, a device and method efficiently enabling a sparse graph code by enlarging a minimum loop formed between arbitrary nodes.

2. Discussion of the Background Art

At present, error correction techniques are widely used for various communication systems such as satellite digital broadcasting, communication on the Internet, and communication by mobile terminals. In particular, recently, with the development of broadband environments, video transmission services using the Internet or the like have been expected, and thus, the error correction techniques on the Internet have become important. Hereinafter, description will be made by exemplifying the Internet.

As a channel is viewed from a side performing a service by using the Internet, the Internet may be recognized as a packet erasure channel (PEC). This is obtained by grouping binary packet erasure channels (FIG. 1) in units of a packet, and the channel corresponds to any one of the case where the channel output is output as correct information and the case where the channel output is output as unclear information that was caused by some kind of obstacles in the communication channel. In this communication system, used is an erased packet recovering method called forward error correction (FEC) or automatic repeat request (ARQ). In a general IP-based service, a TCP/IP protocol is used, and at a decoder side, only error detection is performed; and thus, in the case where error occurs, a method of recovering the error by re-transmission control or the like is used (ARQ method). However, in the case where a large-scale serve such as multicast transmission is considered, error correction is required to be performed based on data received from a receiver side, and thus, a method capable of correcting error only at the receiver side without requiring a feedback channel is used (FEC method). In the FEC method, since re-transmission control is not performed, delay becomes small, and thus, the FEC method is used for a TV conference system of which real-time capability is important. Hereinafter, the FEC method will be described.

As an FEC method, a Reed-Solomon code (RS code) is widely used for digital broadcasting or the like. In Japanese digital broadcasting, a code length is defined to be 204 bytes, and substantially 10[%] parity byte is added to original data of 188 bytes, so that resistance to the error is provided. However, in general, it is known that, if a code having a long code length is used as an error correction code, performance is improved; and however, it is known that, as the code length is increased, decoding becomes complicated, and thus, there occurs a problem in that a calculation amount becomes large. Therefore, with respect to the RS code, it is presumed that the code length is treated to be 256 bytes or less. In addition, in the case where the RS code is adapted to a packet called an IP-based packet level FEC, due to the above-described reason, 256 packets needs to be treated as one block.

In contrast, it is known that, in case of a long code length, a decoding method based on a belief propagation algorithm has excellent decoding characteristics with a practical calculation, and a low-density parity check code (LDPC code, refer to, for example, Non Patent Literature 1) that is, a linear code defined by a sparse graph has drawn attention as a practical error correction method which approaches a channel capacity defined by Shannon. In addition, as an erasure correction code based on a sparse graph, there are known an LT code (refer to, for example, Non Patent Literature 2) of Digital Fountain Inc. and a Raptor code (refer to, for example, Non Patent Literature 3), and it is known that, only by receiving arbitrary code data without much deterioration in encoding efficiency, decodable encode characteristics can be achieved with a fulfilling calculation amount. This property is widely used for multicast communication or the like having a layered configuration in order to comply with asynchronous layered coding (ALC) (refer to, for example, Non Patent Literature 4) as an Internet multicast protocol.

CITATION LIST Non Patent Literature

-   Non Patent Literature 1: R. G. Gallager, “Low density parity check     codes”, in Research Monograph series. Cambridge, MIT Press, 1963 -   Non Patent Literature 2: M. Luby, “LT Codes”, The 43rd Annual IEEE     Symposium on Foundations of Computer Science, 2002 -   Non Patent Literature 3: Shokrollahi, A, “Raptor codes”, Information     Theory, IEEE Transactions on Volume 52, Issue 6, 2006 -   Non Patent Literature 4: “Asynchronous layered coding protocol     instantiation”, IETF RFC 3450, December 2002 -   Non Patent Literature 5: Xiao-Yu Hu, Evangelos Eleftheriou,     Dieter-Michael Arnold, “Progressive Edge-Growth Tanner Graphs”, IEEE     Global Telecommunications Conference, 2001. GLOBECOM'01 -   Non Patent Literature 6: Shiva K. Planjery and T. Aaron Gulliver,     “Design of Rate-Compatible Punctured Repeat-Accumulate Codes”, IEEE     Global Telecommunications Conference, 2007. GLOBECOM'07

SUMMARY

As described above, the error correction code using the sparse graph and the belief propagation algorithm can achieve the encode characteristic which cannot be achieved in the related work. However, in general, it is known that it is difficult to construct a sparse graph code so that the sparse graph code works well. This is because, in the case where there is no loop in the sparse graph, although it is known which type of belief propagation algorithm is optimal, in actual cases, the loop occurs, and thus, it is known that it is difficult to configure a sparse graph where the loop becomes as large as possible in terms of a calculation amount.

In order to solve this problem, proposed is a method of creating a sparse graph having a good practical calculation amount although the sparse graph has a loop structure which is not optimal as the overall sparse graph is viewed (refer to, for example, Non Patent Literature 5). A method called a progressive edge-growth (PEG) algorithm is a method where, in a process of creating nodes without global optimization so that a girth of nodes is lengthened over the entire sparse graph, a local graph over a node of interest is created, the loop is lengthened within the range thereof, so that a good sparse graph is created with some small calculation amount. Branches (lines) in the graph are referred to as edges, and the PEG algorithm creates the edges. In addition, with respect to the correspondence between the sparse matrix and the graph, a column of the matrix corresponds to an information node, a row thereof corresponds to a check node, and one stand location of the sparse matrix corresponds to an edge connecting the information node and the check node.

However, in the PEG algorithm, in the case where a local range is filled with short loops and, thus, when edges of a large loop cannot be created, the following matrix becomes a matrix which is created at random, so that it cannot be ensured at all that the loop is to be lengthened. In this state, the nodes are created at random to be substantially equal to each other, and short loop is easy to create. Due to this phenomenon, for example, there is the case of using a sparse graph created by using a rate-adaptive LDPC code (refer to, for example, Non Patent Literature 6) or the like, which leads to significant deterioration in encoding efficiency in order to use a portion of the sparse graph or the like.

In addition, in the case of creating an irregular sparse matrix (hereinafter, referred to as an irregular matrix) having some column weight, in the PEG algorithm, after a heavy column or row enters, it is difficult to find the node by which the loop is enlarged, and thus, the sparse graph which is created at random easily occurs. This is because the number of edges is increased, and thus, the loop is easy to create.

The present disclosure is to efficiently create a sparse graph in a sparse graph code.

The present disclosure relates to a sparse matrix creation method for an LDPC code, and in particular, the present disclosure is to reform a progressive edge-growth (PEG) algorithm to improve encoding efficiency according to a transmission rate by selecting a node set of lengthening a loop in response to a request of a sparse matrix in order to perform local optimization of lengthening a short loop occurring between arbitrary node sets in the sparse matrix.

Specifically, a sparse graph creation device according to the present disclosure is a sparse graph creation device creating a sparse graph used for a sparse graph code, and includes: an inactivation unit which inactivates at least a portion of nodes in the sparse graph; a searching unit which searches for a node which can be reached through a minimum number of edges from the activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the remaining sparse graph inactivated by the inactivation unit; a node selection unit which selects a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching unit; and a route-node edge connection unit which connects the node selected by the node selection unit and the route node.

In the sparse graph creation device according to the present disclosure, the node selection unit may select a node which enlarges a loop with a small calculation amount by performing the searching by limiting a next search range from information on the searching obtained from the node creating process up to this time.

Specifically, a sparse graph creation device according to the present disclosure is a sparse graph creation device creating a sparse graph used for a sparse graph code, and includes: a searching unit which searches for a node which can be reached through a minimum number of edges from an activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the sparse graph; a node selection unit which selects a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching unit; a route-node edge connection unit which connects the node selected by the node selection unit and the route node; and a constrained interleaving unit which rearranges the nodes in the sparse graph where an edge is created at a position selected by the route-node edge connection unit so that each weights of sparse matrices are uniformly distributed in terms of a space.

In the sparse graph creation device according to the present disclosure, the constrained interleaving unit may rearrange the nodes in the sparse graph so that a graph structure of activated nodes is maintained.

The sparse graph creation device according to the present disclosure may further include a node expansion unit which installs a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened.

Specifically, a sparse graph creation method according to the present disclosure is a sparse graph creation method creating a sparse graph used for a sparse graph code, and includes: sequentially an inactivating process of inactivating at least a portion of nodes in the sparse graph; a searching process of searching for a node which can be reached through a minimum number of edges from the activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the remaining sparse graph inactivated by the inactivating process; a node selecting process of selecting a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching process; and a route-node edge connecting process of connecting the node selected by the node selecting process and the route node.

In the sparse graph creation method according to the present disclosure, in the node selecting process, a node which enlarges a loop with a small calculation amount may be selected by performing the searching by limiting a next search range from information on the searching obtained from the node creating process up to this time.

Specifically, a sparse graph creation method according to the present disclosure is a sparse graph creation method creating a sparse graph used for a sparse graph code, and includes: sequentially a searching process of searching for a node which can be reached through a minimum number of edges from an activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the sparse graph; a node selecting process of selecting a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching process; a route-node edge connecting process of connecting the node selected by the node selecting process and the route node; and a constrained interleaving process of rearranging the nodes in the sparse graph where an edge is created at a position selected by the route-node connecting process so that each weights of sparse matrices are uniformly distributed in terms of a space.

In the sparse graph creation method according to the present disclosure, in the constrained interleaving process, the nodes in the sparse graph may be rearranged so that a graph structure of activated nodes is maintained.

The sparse graph creation method according to the present disclosure may further include a node expansion process of installing a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened after the node selecting process and before the constrained interleaving process.

In addition, the disclosures may be combined if possible.

According to the present disclosure, a sparse graph in a sparse graph code can be efficiently created.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of a packet erasure channel.

FIG. 2 illustrates an example of a communication system according to an embodiment.

FIG. 3 illustrates an example of a sparse matrix creation device according to a first embodiment.

FIG. 4 illustrates an example of a matrix stored in a sparse matrix cache unit 102.

FIG. 5 illustrates an example of tree expansion of a parity check matrix for an LDGM code.

FIG. 6 illustrates an example of a length-4 loop.

FIG. 7 illustrates an example of a length-6 loop.

FIG. 8 illustrates an example of inactivation.

FIG. 9 illustrates an example of a sparse matrix creation device according to a second embodiment.

FIG. 10 illustrates an example of a before-interleaving matrix.

FIG. 11 illustrates an example of an after-interleaving matrix.

FIG. 12 illustrates an example of two before-interleaving matrices.

FIG. 13 illustrates an example of a sparse matrix creation device according to a third embodiment.

FIG. 14 illustrates an example of a process of creating a rate-adaptive sparse matrix and a small sparse matrix which is created.

FIG. 15 illustrates an example of the process of creating the rate-adaptive sparse matrix and a small sparse matrix which is expanded.

FIG. 16 illustrates an example of the process of creating the rate-adaptive sparse matrix and a small sparse matrix which is column-expanded.

FIG. 17 illustrates an example of the process of creating the rate-adaptive sparse matrix and an after-constrained-interleaving sparse matrix.

FIG. 18 illustrates an example of expansion of nodes.

FIG. 19 illustrates a second configuration example of a sparse matrix creation device according to a third embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In addition, the present disclosure is not limited to embodiments described hereinafter. These embodiments are simply examples, and thus, the present disclosure can be embodied as various changes and modifications of the embodiments performed based on the knowledge of the skilled person in the art. In addition, in the specification and the drawings, the same components are denoted by the same reference numerals.

Although the present disclosure can be embodied without depending on the type of a channel, description will be made by exemplifying packet transmission using a UDP protocol used for multicast transmission. If the UDP protocol is used, even in the case where a UDP packet is erased, re-transmission is not performed unlike a TCP protocol, and as illustrated in FIG. 1, characteristics of a packet erasure channel can be obtained where it can be determined whether or not a received packet is correct and a position of the erased packet can be accurately determined.

FIG. 2 illustrates an example of a communication system according to an embodiment. The communication system according to the embodiment is configured to include a channel encoding device 91, a packet transmission device 92, a packet-based receiver device 93, and a channel decoding device 94. The channel encoding device 91 encodes transmission data by using a sparse matrix. The packet transmission device 92 transmits the encoded transmission data. The packet-based receiver device 93 receives the transmission data. The channel decoding device 94 decodes received data by using the sparse matrix. The encoding of the channel encoding device 91 and the decoding of the channel decoding device 94 are performed by using the sparse matrix created by a sparse matrix creation unit 10 which functions as a sparse matrix creation device according to the embodiment.

As an example of the communication system according to the embodiment, an error correction function for a packet level FEC which can be implemented according to the present disclosure will be described. The transmission data such as video data and audio data are encoded by the channel encoding device 91. At this time, in general, the channel encoding device 91 performs fragmentation or the like by taking into consideration a packet size or the like of the packet transmission device 92 which is to be connected later. In the case where a linear code such as an LDPC code is used for the encoding, the channel encoding device 91 creates redundant data by the following encoding process.

[Mathematical Formula 1]

C _(m) ^(t) =[T _(m,m) ⁻¹ ][G _(m,k) ]S _(k) ^(t)  (1)

Herein, S is a fragment formed by fragmenting the input data such as a video data by a certain size, and G and T are sparse matrices corresponding to sparse graphs. In addition, in the case where the LDPC code is of a type called LDPC-Staircase, the matrix T is a staircase matrix. The matrix T⁻¹ can be replaced with an accumulator, and by using the accumulator, the encode process can be performed at a high speed.

In the figure, the sparse matrix creation unit 10 creates the matrices G and T improving encoding efficiency and decoding efficiency by using a small calculation amount. Since an information amount of the created sparse matrix is large, in general, a parameter of the sparse matrix is extracted to be notified to the channel decoding device 94 of the decoding side. The parameter is, for example, the generated parity data and FEC supplementary information. The packet-based transmission device 92 transmits the extracted parameter together with the video data or the audio data in accordance with an FLUTE standard (RFC 3926), an MPEG media trans-port (ISO/IEC 23008-1) standard, or the like. The packet-based receiver device 93 of the receiver side receives the packet transmitted from the packet-based transmission device 92. At this time, the packet-based receiver device 93 compares the packet with a header format of FLUTE, and in the case where packet erasure occurs, recovery of the erased packet is tried in the channel decoding device 94. The channel decoding device 94 corresponds to the encoding, and it is shared in advance from the supplementary information or the like that the following constraints are satisfied.

$\begin{matrix} \left\lbrack {{Mathematical}\mspace{14mu} {Formula}\mspace{14mu} 2} \right\rbrack & \; \\ {0 = {\left\lbrack G_{m,k} \middle| T_{m,m} \right\rbrack \begin{bmatrix} S_{k}^{t} \\ \ldots \\ C_{m}^{t} \end{bmatrix}}} & (2) \\ \left\lbrack {{Mathematical}\mspace{14mu} {Formula}\mspace{14mu} 3} \right\rbrack & \; \\ {= {\left\lbrack H_{m,n} \right\rbrack x_{n}^{t}}} & (3) \end{matrix}$

Herein, the matrices G and T are sparse matrices corresponding to the sparse graphs, and the same information as that of the encoding side is used.

In general, since a data amount of the sparse matrix information is large, the sparse matrices are shared according to notification of the parameter from the encoding side to the decoding side. In the decoding side, the sparse matrix creation unit 10 creates the same sparse matrices as those of the encoding side from the notified parameter. The decoding side decodes the erased packet by using the above-described equations. When an index set of erased packets is denoted by ε, a parity check matrix corresponding to erased packets is denoted by H_(ε), and a set of erased packets is denoted by x_(ε), the above-described equation can be expressed by the following equation.

[Mathematical Formula 4]

[H _(ε) ]x _(ε) ^(t) =[H _(ε′) ]x _(ε′) ^(t)  (4)

Herein, in the right-handed side, ε′ denotes an index set of received packets.

If the number of ranks of H_(ε) is the number of erased packets |x_(ε)|, the erased packets can be recovered by maximum likelihood decoding from the above-described equation. As the decoding method, various methods are proposed, and there are a method of performing recovery by a message passing algorithm, a method of performing recovery by a Gaussian elimination method and the like. In general, in the message passing algorithm, since decoding utilizing sparseness of a sparse graph is available, the decoding in O(N) is available, and however, in the Gaussian elimination method, an operation O(N³) is necessary for a pre-process of obtaining an inverse matrix, and an operation O(N²) is necessary for a calculation process of actually recovering the packets.

According to the present disclosure, in the channel encoding device and the channel decoding device, a sparse matrix having high error correction capability and high encoding efficiency can be created at a high speed, and the matrix can be efficiently corrected in the message passing algorithm as well as in the Gaussian elimination method. In addition, due to combination with a rate-adaptive LDPC code, the matrix does not need to be created from 0 again for each time, and thus, even in the case where one sparse matrix is applied with various rates, error correction with high encoding efficiency can be performed.

First Embodiment

In this embodiment, a selective PEG algorithm improves encoding efficiency in the case where a matrix space is narrow by creating a sparse matrix while maintaining row weight/column weight at arbitrary multi-levels and by inactivating arbitrary edges during the process.

A sparse graph creation method according to the embodiment is configured to sequentially include an inactivating process, a searching process, a node selecting process, and a route node edge connecting process.

In the inactivating process, at least a portion of nodes in a sparse graph is inactivated.

In the searching process, the node which can be reached through the minimum number of edges from activated nodes connected to an arbitrary route node which becomes a route in creation of a local graph is searched for from the remaining sparse graph inactivated.

In the node selecting process, the nodes satisfying predetermined conditions are selected from a result of the searching.

In the route node edge connecting process, the nodes selected in the node selecting process and the route node are connected to each other.

FIG. 3 illustrates a basic configuration diagram of a sparse matrix creation device according to the embodiment. The sparse matrix creation device 100 according to the embodiment is configured to include an algebraic structure creation unit 101, a sparse matrix cache unit 102, a random number generation unit 103, a route-node edge connection unit 104, a node inactivation unit 105, an inactivation control unit 106, a search depth control unit 107, a searching unit 108, a node selection unit 109, and an interleaving unit 110. The sparse matrix creation device 100 and the sparse graph creation method according to the embodiment implement a rate-adaptive error correction code which achieves multi-level rate control at high efficiency.

The algebraic structure creation unit 101 is considered in the case where the sparse graph has a particular structure. The sparse matrix cache unit 102 stores the sparse matrices which are created. The random number generation unit 103 stochastically configures codes. The route-node edge connection unit 104 selects an edge connected to the route node as a reference in enlarging the loop of the local graph. The node inactivation unit 105 selects nodes which are not considered in enlarging the loop of the local graph. The inactivation control unit 106 determines conditions for the process of the node inactivation unit 105. The search depth control unit 107 controls depths of the nodes which are searched for in enlarging the loop of the local graph. The searching unit 108 searches for the nodes which can be reached through the minimum number of edges from activated nodes connected to the route node based on control information of the search depth control unit 107. The node selection unit 109 selects the nodes satisfying conditions from a result of the searching of the searching unit 108. The condition is, for example, that a check node cannot be reached through any five edges from the route node and the like. The interleaving unit 110 is a constrained interleaving unit which performs exchange such as by column-exchange of the created sparse matrix. Hereinafter, components will be described.

This system is a channel decoding system which efficiently recovers packet erasure occurring on a packet erasure channel. Hereinafter, for the simplification, as one of the best examples where the system operates effectively, an example is described where IP packet transmission on the Internet as a representative packet erasure channel is considered and an LDPC-Staircase code configured with sparse graphs is considered.

When input data are input to the sparse matrix creation device 100, sparse matrix creation is started. As the input data, information necessary for matrix creation such as a size of matrix associated with an encode rate, information on a weight of matrix, and an initial value of a search depth is input. The size of matrix is, for example, a horizontal size and a vertical size. The information on the weight of matrix is, for example, which column is of a column weight of 3 and which column is of a column weight of 7.

First, in the algebraic structure creation unit 101, since the LDPC-Staircase code is considered at this time, a staircase matrix is created to have an algebraic structure. The created staircase matrix is stored in the sparse matrix cache unit 102.

Next, in the route-node edge connection unit 104, the route node in the creation of the local graph and one node are connected to each other through the edge. Herein, the local graph is a graph configured with candidate nodes which are to be connected from the route node in the sparse graph creating process. The route node is a node as a target of addition of a new edge and a node located at the highest position in tree expression.

In the sparse graph creating process, in the case where the route node corresponding to the column is initially selected, various methods of selecting the node connected from the route node through the edge are considered, and for example, a method of calculating row weights and selecting from a set of check nodes having the lightest weight at random is performed. In the case where this constraint is applied, a sparse matrix which is regular in the row direction is created. In the process, the check node which is to be connected from the route node is selected according to the random number generated by the random number generation unit 103.

In the route-node edge connection unit 104, the check node which is to be connected to the route node is selected and connected through the edge, and the procedure proceeds to the node inactivation unit 105. In the node inactivation unit 105, the node which is not included in the searching in the creation of the local graph is designated based on the information of the inactivation control unit 106. However, in the case where there is no particular need for extremely reducing the searching time in the creation of the matrix, there is no merit of inactivating the node, and thus, typically, until a time when the matrix is created, the inactivation control unit 106 does not designate the node which is to be inactivated.

The searching unit 108 performs searching on the activated node which is not inactivated based on the information of the search depth control unit 107. The searching operation will be described with reference to FIGS. 4 and 5. FIG. 4 illustrates an example of a matrix stored in the sparse matrix cache unit 102, and FIG. 5 illustrates a relationship of connection between the route node and the check node which is connected through the minimum number of edges.

Now, it is assumed that the matrix illustrated in FIG. 4 is already created, and the circled “1” is selected as the check node which is connected to the route node in the route-node edge connection unit 104. In addition, it is assumed that all the nodes are in activated state, and the search depth is set to “1”. In the embodiment, it is assumed that Depth=1 denotes 1-step searching. In the case, it is assumed that the searching unit 108 performs the 1-step searching. The 1-step searching is to search for the node which is connected to the route node and the active check node through 3 edges (connected through length-3). In the example illustrated in FIG. 5, it can be understood that there are four check nodes connected to a source node NS₀₀ corresponding to the route node through length-3, and the first, second, third, and fifth check nodes NC₀₁, NC₀₂, NC₀₃, NC₀₅ are connected. In the example of FIG. 4, since the route node and the third check node are connected, “1” cannot be set to the third check node. In this case, in the case where “1” is set to the first, second, and fifth check nodes NC₀₁, NC₀₂, and NC₀₅, a length-4 loop is created so that Depth=1 of FIG. 5 occurs. Herein, the length-4 loop denotes a state of the node arrangement where “1” indicating the node occurs as illustrated in FIG. 6. Since the encoding efficiency is lowered in this arrangement, preferably, the length-4 loop does not exist.

In addition, in the case of performing 2-step searching, the check node which can be reached through five edges is searched for, and since the edge also reaches the fourth check node, in the arrangement of the nodes illustrated in FIG. 5, the selection of the check node avoiding the length-6 loop as illustrated in FIG. 7 cannot be performed.

The node selection unit 109 receives a result of the searching of the searching unit 108 and determines the position of to-be-added node. For example, the nodes are nodes which cannot be reached from the route node through any three edges. In the case where there are multiple candidates for selection, used are methods such as a method of selecting from a candidate node set at random, a method of filling from a top portion of a matrix, or a method of filling from a portion having a small row weight. In addition, in the case of selecting the node at random, the random number generated by the random number generation unit 103 is used.

If one node is selected by the node selection unit 109, the procedure returns to the route-node edge connection unit 104, the edge for the node selected by the node selection unit 109 is added, and the same processes as 105, 108, and 109 are performed.

If an arbitrary number of nodes (e.g., three nodes) are created and column process is ended, the selected node is stored in the sparse matrix cache unit 102.

In addition, in the case where there is no node which can be selected by the node selection unit 109 in the performing of the process (there is no candidate satisfying the conditions), the search depth control unit 107 changes the search depth to narrow the search range, or the nodes inactivated by the inactivation control unit 106 are selected, so that the process of decreasing the activated nodes as search targets is performed. This process may be performed side by side or simultaneously, and for example, the search depth control unit 107 changes the search depth, and in the case where there is no node which can be selected in the 1-step searching, a method of changing the settings of the inactivation control unit 106 to inactivate the nodes which are created until the time and enlarging the search depth of the search depth control unit 107 again to continue to perform the matrix creation is effectively used.

The process of the node inactivation unit 105 will be described with reference to FIG. 8. The matrix in the left portion of FIG. 8 is a matrix which is obtained in the performing of the matrix creation. Now, the ninth node is to be created, and the first check node is selected as the route node. However, in the performing of the 1-step searching, all other check nodes including the second, third, fourth, and fifth check nodes are connected through the length-3 edge, and thus, although any node is selected, the length-4 loop occurs. Therefore, the inactivation control unit 106 determines that half of the nodes which are already created are to be activated, and the node inactivation unit 105 inactivates the first to fourth nodes (the right portion of FIG. 8). Due to the inactivation, any one of the third, fourth, and fifth check nodes can be selected. Therefore, in the sparse matrix creation device 100 according to the embodiment, even in the case where a portion of the created matrices is used, excellent encoding efficiency can be achieved, and such as by changing the to-be-inactivated node according to the column weight, the sparse matrix having good encoding efficiency can be speedily and efficiently created. In addition, the to-be-inactivated node is arbitrarily changed according to the rate-adaptive parameters, or the like. For example, in this embodiment, since a degree of demands for the node corresponding to the staircase matrix is high, preferably, the node is not inactivated, but the node is always maintained active.

Finally, if the elements of the sparse matrix are completely obtained, the created sparse matrix is transmitted to the interleaving unit 110. In the interleaving unit 110, even in the case where cutting is performed within an arbitrary range, column rearrangement is performed so that a loop is wide and matrix weights are averaged, and the sparse matrix information is output as output data.

Second Embodiment

In this embodiment, in a selective PEG algorithm, creation of a sparse matrix is performed while maintaining row weight/column weight at an arbitrary multi-level, and in the process, by performing constrained interleaving, encoding efficiency of the case where a matrix space is narrow is improved.

The sparse graph creation method according to the embodiment is configured to sequentially include a searching process, a node selecting process, a route node edge connecting process, and a constrained interleaving process.

In the searching process, a node which can be reached through the minimum number of edges from activated nodes connected to an arbitrary route node which becomes a route in creation of a local graph is searched for from a sparse graph.

In the node selecting process, the nodes satisfying predetermined conditions are selected from a result of the searching.

In the route node edge connecting process, the nodes selected in the node selecting process and the route node are connected to each other.

In the constrained interleaving process, each nodes of the sparse graph where the nodes are created at selected positions are rearranged to maintain the relationship of the local graph so that each weights of the sparse matrices are uniformly distributed in terms of a space.

FIG. 9 illustrates a basic configuration diagram of a sparse matrix creation device according to the embodiment. The sparse matrix creation device 200 according to the embodiment is configured to include an algebraic structure creation unit 201, a sparse matrix cache unit 202, a random number generation unit 203, a route-node edge connection unit 204, a searching unit 208, a search depth control unit 207, a node selection unit 209, and a constrained interleaving unit 210. The sparse matrix creation device 200 according to the embodiment implements a rate-adaptive error correction code which achieves

The algebraic structure creation unit 201 is considered in the case where the sparse graph has a particular structure. The sparse matrix cache unit 202 stores the sparse matrices which are created. The random number generation unit 203 stochastically configures codes. The route-node edge connection unit 204 selects an edge connected to the route node as a reference in enlarging the loop of the local graph. The searching unit 208 searches for the nodes which can be reached through the minimum number of edges based on control information of the search depth control unit 207. The search depth control unit 207 controls a search depth by using the searching unit 208. The node selection unit 209 selects the nodes satisfying conditions from a result of the searching. The constrained interleaving unit 210 performs exchange such as by column-exchange of the created sparse matrices. Hereinafter, each components will be described.

This system is a channel decoding system which efficiently recovers packet erasure occurring on a packet erasure channel. Hereinafter, for the simplification, as one of the best examples where the system operates effectively, an example is described where IP packet transmission on the Internet as a representative packet erasure channel is considered and an LDPC-Staircase code configured with sparse graphs is considered.

When input data are input to the sparse matrix creation device 200, sparse matrix creation is started. As the input data, information necessary for matrix creation such as a size (e.g., horizontal size and vertical size) of matrix associated with an encode rate, information (e.g., which column is of a column weight of 3 and which column is of a column weight of 7) on a weight of matrix, and an initial value of a search depth is input.

First, in the algebraic structure creation unit 201, since the LDPC-Staircase code is considered at this time, a staircase matrix is created to have an algebraic structure. The created staircase matrix is stored in the sparse matrix cache unit 202.

Next, in the route-node edge connection unit 204, the node connected from the node which becomes the route node in the creation of the local graph is connected through the edge. In the case where the edge which is connected from the route node to the check node is initially selected as the column, various methods of selecting the edge are considered, and for example, a method of calculating row weights and selecting from a set of check nodes having the lightest weight at random is performed. In the case where this constraint is applied, a sparse matrix which is regular in the row direction is created. In the process, the check node is selected according to the random number generated by the random number generation unit 203 and is connected through the edge.

If the edge is connected from the route node by the route-node edge connection unit 204, the searching unit 208 performs searching based on the information of the search depth control unit 207. Since the operations of the searching unit 208 are the same as those of the searching unit 108 described in the first embodiment, detailed description of the searching operations is omitted herein.

The node selection unit 209 receives a result of the searching of the searching unit 208 and determines to-be-added nodes. In the case where there are multiple candidates for selection, used are methods such as a method of selecting from a candidate node set at random, a method of filling from a top portion of a matrix, or a method of filling from a portion having a light row weight. In addition, in the case of selecting the node at random, the random number generated by the random number generation unit 203 is used.

If one node is selected by the node selection unit 209, the procedure returns to the route-node edge connection unit 204, the selected edge is allowed to be connected with the route node, and the same processes as the searching unit 208 and the node selection unit 209 are performed, the arbitrary number of nodes (e.g. three nodes) are created, and the processes are repeated until the column process is ended. After that, the selected node is stored in the sparse matrix cache unit 202.

In addition, in the case where there is no node which can be selected by the node selection unit 209 in the performing of the process (there is no candidate satisfying the conditions), like the first embodiment, the search depth control unit 207 changes the search depth to narrow the search range. However, in some cases, although the search range is narrowed, the node which can be selected by the node selection unit 204 does not occur. In this case, the search depth control unit 207 controls the searching not to be performed, and the searching unit 208 is skipped, so that a sparse matrix having an arbitrary weight is created.

In addition, in this embodiment, in the case of creating an irregular matrix, first, a column (e.g. a column having a column weight of 3) having light weight is configured to be created, and after that, a column (e.g. a column having a column weight of 7) having heavy weight is configured to be created, so that a matrix having good encoding efficiency can be created. FIGS. 10 and 11 illustrate examples of sparse matrices stored in the sparse matrix cache unit 202 after the selection of nodes of the entire sparse matrix is performed. First, the sparse matrix includes a staircase matrix created by the algebraic structure creation unit 201 at the left portion; next, a sparse matrix having a column weight of 3 follows; and finally, a sparse matrix having a column weight of 7 follows.

Finally, if the elements of the sparse matrix are completely obtained, the created sparse matrix is transmitted to the constrained interleaving unit 210, and column rearrangement is performed so that, even in the case where cutting is performed within an arbitrary range, a loop is wide and matrix weights are averaged, and the sparse matrix information is output as output data. The constrained interleaving unit 210 can rearrange, for example, the sparse matrix illustrated in FIG. 10 to the matrix illustrated in FIG. 11.

Namely, the staircase matrix indicated by “T” in FIG. 10 is located at the right side of a parity check matrix. In addition, in FIG. 10, a mixed sparse matrix “G” indicated in FIG. 11 is created by the sparse matrix having a column weight of 3 indicated by “G1” and the sparse matrix having a column weight of 7 indicated by “G2”. The mixed sparse matrix “G” can be obtained by mixing so that the sparse matrix having a column weight of 3 and the sparse matrix having a column weight of 7 are averaged over the space and the average thereof is uniform.

In addition, at the same time, the mixed sparse matrix “G” maintains an order relationship within the sparse matrix having a column weight of 3 and within the sparse matrix having a column weight of 7. Namely, nodes N₃₁, N₃₂, N₃₃, and N₃₄ having a column weight of 3 and nodes N₇₁, N₇₂, N₇₃, N₇₄ having a column weight are arranged in the order of N₃₁, N₇₁, N₃₂, N₇₂, N₃₃, N₇₃, N₃₄, and N₇₄ in the mixed sparse matrix “G”. In this manner, by performing the constrained interleaving, for example, although the rate variation is performed to fourth node by a process of filling with 0s to change the length about the source, the process is performed so that excellent encoding performance is maintained.

In addition, the constrained interleaving unit 210 may create one sparse matrix by mixing two sparse matrices. FIG. 12 illustrates two sparse matrices having different column weights which are created by the sparse matrix creation device according to the embodiment. Even in this case, by the constrained interleaving unit 210, the sparse matrix having a column weight of 3 and the sparse matrix having a column weight of 7 can be mixed as a mixed sparse matrix “G” having a column weight of 3 and a column weight of 7 as illustrated in FIG. 11, and the staircase matrix is rearranged to be located at the right side.

In this embodiment, since the node inactivation unit 105 of the first embodiment is not included, a function similar to that of the node inactivation unit 105 of the first embodiment can be obtained by creating a plurality of the sparse matrices.

Third Embodiment

FIG. 13 illustrates a basic configuration diagram of a sparse matrix creation device according to an embodiment. The sparse matrix creation device 300 according to the embodiment implements a rate-adaptive error correction code which achieves multi-level rate control with high efficiency. The sparse matrix creation device 300 according to the embodiment is configured to include an algebraic structure creation unit 301, a sparse matrix cache unit 302, a random number generation unit 303, a route-node edge connection unit 304, a node inactivation unit 305, an inactivation control unit 306, a search depth control unit 307, a searching unit 308, a node selection unit 309, an expansion edge selection unit 310, a node expansion unit 311, and a constrained interleaving unit 312.

The algebraic structure creation unit 301 is considered in the case where a sparse graph has a particular structure. The sparse matrix cache unit 302 stores sparse matrices which are created. The random number generation unit 303 stochastically configures codes. The route-node edge connection unit 304 connects through an edge the node which is to be connected from a node as a route in creation of a local graph. The node inactivation unit 305 selects a node which is not considered in enlarging the loop of the local graph. The inactivation control unit 306 determines conditions of a process of the node inactivation unit 305. The search depth control unit 307 controls a depth of search in enlarging the loop of the local graph. The searching unit 308 searches for the node which can be reached through the minimum number of edges from activated nodes connected to the route node based on control information of the search depth control unit 307. The node selection unit 309 selects the node satisfying the conditions from a result of the searching of the searching unit 308. The expansion edge selection unit 310 selects the edge which proceeds to the expanded check node. The node expansion unit 311 increases the number of check nodes in the state where the number of edges in the sparse graph is maintained. The constrained interleaving unit 312 performs exchange such as by column exchange of the created sparse matrix. Hereinafter, the each components will be described.

The system is a channel decoding system which efficiently recovers packet erasure occurring on a packet erasure channel. Hereinafter, for the simplification, as one of the best examples where the system operates effectively, an example is described where IP packet transmission on the Internet as a representative packet erasure channel is considered and an LDPC-Staircase code configured with sparse graphs is considered. In addition, in this embodiment, an example specialized in a rate variation capable of greatly changing redundancy is described.

When input data are input to the sparse matrix creation device 300, sparse matrix creation is started. As the input data, information necessary for matrix creation such as a size (e.g., horizontal size and vertical size) of matrix associated with an encode rate, information (e.g., which column is of a column weight of 3 and which column is of a column weight of 7) on a weight of matrix, and an initial value of a search depth is input. In addition, as parameters corresponding to rate variation, information such as minimum matrix size or maximum matrix size, and each redundancy rate is input.

Since the processes from the process of the algebraic structure creation unit 301 to the process of the node selection unit 309 are basically the same as those of the components 101 to 109 of the first embodiment, detailed description thereof is omitted, and in order to create a matrix corresponding to the rate variation, in the node selection of the route-node edge connection unit 304 and the node selection unit 309, the node is selected so that the matrix size is included within a range of the minimum matrix size, and the connection is performed through the edge. Namely, as illustrated in FIG. 14, the region where the node is selected is restricted to create a small sparse matrix, and the sparse matrix is stored in the sparse matrix cache unit 302. In addition, in FIGS. 14 to 17, G1 is a sparse matrix having an arbitrary weight, and a regular matrix, an irregular matrix, or other various matrices can be produced.

Next, the created small sparse matrix expands check nodes by using the expansion edge selection unit 310 and the node expansion unit 311. Although various expansion methods can be considered, herein, a method is used where only the number of check nodes is changed without change in the number of source nodes and the number of edges. FIG. 18 illustrates an overview of the process. The left diagram of FIG. 18 illustrates a state before the expansion of G1 of FIG. 14. The expansion edge selection unit 310 selects expansion edges. Namely, in FIG. 18, among the edges connected to the NC₁ and the NC₂, the to-be-expanded edges are selected. Next, the node expansion unit 311 additionally installs the check nodes NC₃ and NC₄ and re-attaches the edges selected by the expansion edge selection unit 310 thereto. Therefore, as illustrated in the right diagram of FIG. 18, the check nodes NC₃ and NC₄ are added.

In the expansion, in the expansion edge selection unit 310, the selection as to which edge is connected to the expanded node (or whether the edge still remains connected to the check node) is performed at random according to the random number generated by the random number generation unit 303. In addition, in this process, the expansion edges are selected so that the number of edges connected to any check nodes is roughly the same. In response to the edge selection, the node expansion unit 311 performs the check node expansion. As a result of the expansion, G1 of FIG. 14 becomes G2 of FIG. 15, so that a sparse graph structure where the number of check nodes is increased is obtained. The expanded sparse matrix is stored in the sparse matrix cache unit 302.

After that, the node creation in the column direction continues to be performed. The processes are the same as the above processes, and the column creating processes of from the route-node edge connection unit 304 to the node selection unit 309 are performed. At this time, in the route-node edge connection unit 304 and the node selection unit 309, the space restriction which is applied in the above-described processes is not applied. Therefore, like G3 illustrated in FIG. 16, a partial sparse matrix of which the region is not restricted is created.

Finally, if the elements of the sparse matrix are completely obtained, the created sparse matrix is transmitted to the constrained interleaving unit 312, and column rearrangement is performed so that, even in the case where cutting is performed within an arbitrary range, a loop is wide and matrix weights are averaged, and the sparse matrix information is output as output data. For example, as illustrated in FIG. 17, the sparse matrices G2 and G3 are rearranged so that the column weights are equalized, and thus, sparse matrices G2′ and G3′ are obtained. In the sparse matrix G2′ and G3′, like the constrained interleaving illustrated in FIGS. 10 and 11, the constrained interleaving is performed where the column exchange is not performed for the columns having the same column weight. According to the configuration, in the case where the rate is varied by filling with 0s from the right side of G3′ or in the case where the rate is varied by a puncture process on G2′, a matrix can be created with high encoding efficiency.

In addition, in this embodiment, although the simple rate-adaptive example is described, the embodiment can be easily modified as a method of creating a matrix coping with rate variation to a multi-rate.

In this embodiment, although the example where the configuration of the first embodiment is added with the expansion edge selection unit 310 and the node expansion unit 311 is described, the embodiment is not limited thereto. For example, as illustrated in FIG. 19, the configuration of the second embodiment may be added with the expansion edge selection unit 310 and the node expansion unit 311.

In addition, the disclosure according to the embodiment includes the configuration of the first embodiment and the constrained interleaving function described in the second embodiment. In this manner, the disclosure of the first embodiment and the disclosure of the second embodiment may be combined. According to this combination, the encoding efficiency can be further improved.

As clarified from the above description, according to the present disclosure, in creation of a sparse matrix in a sparse graph code, a sparse matrix implementing a rate-adaptive error correction code achieving multi-level rate control at high efficiency can be created.

INDUSTRIAL APPLICABILITY

The present disclosure can be applied to information communication industries.

REFERENCE SIGNS LIST

-   -   10: sparse matrix creation unit     -   91: channel encoding device     -   92: packet-based transmission device     -   93: packet-based receiver device     -   94: channel decoding device     -   100, 200, 300, 400: sparse matrix creation device     -   101, 201, 301, 401: algebraic structure creation unit     -   102, 202, 302, 402: sparse matrix cache unit     -   103, 203, 303, 403: random number generation unit     -   104, 204, 304, 404: route-node edge connection unit     -   105, 305: node inactivation unit     -   106, 306: inactivation control unit     -   107, 207, 307, 406: search depth control unit     -   108, 208, 308, 405: searching unit     -   109, 209, 309, 407: node selection unit     -   110: interleaving unit     -   210, 312, 410: constrained interleaving unit     -   310, 408: expansion edge selection unit     -   311, 409: node expansion unit     -   911: channel encoding unit     -   921: packet transmission unit     -   931: received data analyzing unit     -   941: channel decoding unit 

What is claimed is:
 1. A sparse graph creation device creating a sparse graph used for a sparse graph code, comprising: an inactivation unit which inactivates at least a portion of nodes in the sparse graph; a searching unit which searches for a node which can be reached through a minimum number of edges from the activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the remaining sparse graph inactivated by the inactivation unit; a node selection unit which selects a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching unit; and a route-node edge connection unit which connects the node selected by the node selection unit and the route node.
 2. The sparse graph creation device according to claim 1, wherein the node selection unit selects a node which enlarges a loop with a small calculation amount by performing the searching by limiting a next search range from information on the searching obtained from the node creating process up to this time.
 3. A sparse graph creation device creating a sparse graph used for a sparse graph code, comprising: a searching unit which searches for a node which can be reached through a minimum number of edges from an activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the sparse graph; a node selection unit which selects a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching unit; a route-node edge connection unit which connects the node selected by the node selection unit and the route node; and a constrained interleaving unit which rearranges the nodes in the sparse graph where an edge is created at a position selected by the route-node edge connection unit so that weights of sparse matrices are uniformly distributed in terms of a space.
 4. The sparse graph creation device according to claim 3, wherein the constrained interleaving unit rearranges the nodes in the sparse graph so that a graph structure of activated nodes is maintained.
 5. The sparse graph creation device according to claim 1, further comprising a node expansion unit which installs a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened.
 6. A sparse graph creation method creating a sparse graph used for a sparse graph code, comprising: sequentially an inactivating process of inactivating at least a portion of nodes in the sparse graph; a searching process of searching for a node which can be reached through a minimum number of edges from the activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the remaining sparse graph inactivated by the inactivating process; a node selecting process of selecting a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching process; and a route-node edge connecting process of connecting the node selected by the node selecting process and the route node.
 7. The sparse graph creation method according to claim 6, wherein in the node selecting process, a node which enlarges a loop with a small calculation amount is selected by performing the searching by limiting a next search range from information on the searching obtained from the node creating process up to this time.
 8. A sparse graph creation method creating a sparse graph used for a sparse graph code, comprising: sequentially a searching process of searching for a node which can be reached through a minimum number of edges from an activated node connected to an arbitrary route node which becomes a route in creation of a local graph from the sparse graph; a node selecting process of selecting a node satisfying a predetermined condition at a position where the edge is created from a result of the searching of the searching process; a route-node edge connecting process of connecting the node selected by the node selecting process and the route node; and a constrained interleaving process of rearranging the nodes in the sparse graph where an edge is created at a position selected by the route-node edge connecting process so that weights of sparse matrices are uniformly distributed in terms of a space.
 9. The sparse graph creation method according to claim 8, wherein in the constrained interleaving process, the nodes in the sparse graph are rearranged so that a graph structure of activated nodes is maintained.
 10. The sparse graph creation method according to claim 8, further comprising a node expansion process of installing a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened after the node selecting process and before the constrained interleaving process.
 11. The sparse graph creation method according to claim 6, further comprising a node expansion process of installing a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened after the node selecting process and before the constrained interleaving process.
 12. The sparse graph creation method according to claim 7, further comprising a node expansion process of installing a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened after the node selecting process and before the constrained interleaving process.
 13. The sparse graph creation method according to claim 9, further comprising a node expansion process of installing a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened after the node selecting process and before the constrained interleaving process.
 14. The sparse graph creation device according to claim 2, further comprising a node expansion unit which installs a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened.
 15. The sparse graph creation device according to claim 3, further comprising a node expansion unit which installs a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened.
 16. The sparse graph creation device according to claim 4, further comprising a node expansion unit which installs a new node so that a total number of edges of the sparse graph is not changed and a minimum loop is not shortened. 